package main

import (
	"flag"
	"fmt"
)

//命令行参数解析
func main() {
	//第一个参数为参数名，第二个默认值，第三个参数信息
	p:=flag.Int("p", 9000, "port")
	//flag.Parse()  //解析参数

	//将flag绑定到一个变量，使用Var系列函数
	var val string
	flag.StringVar(&val,"v", "string param", "string类型")
	flag.Parse()

	fmt.Println(*p)
	fmt.Println(val)

	fmt.Println(flag.Args())  //切片形式打印所有参数,不是以关键字传入方式
	fmt.Println(flag.Args())  //参数个数,不是以关键字传入方式
	fmt.Println(flag.NFlag())  //参数中关键字参数的个数(键值对形式)

	//go run 使用方法.go -p 8000 -v "这是go"  haha  123
	//flag.Args(): [haha 123]
	//flag.Args(): 2
	//flag.NFlag(): 2

}
